<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
    //     var arr=[
    //     [1,2,3],
    //     [4,5,6],
    //     {a: 10,b:20},
    //     function () {
    //         console.log('这是数组中的函数')
    //     }
    // ]

    //数组的api
    var arr1=[1,2,3]
    var arr2=[4,5,6]
    //.concat---链接数组拼接
    //不修改原数组--返回新的数组

    var arr3= arr1.concat(arr2,[7],[8],[9])
    console.log(arr3)
    // console.log(arr1)
    // console.log(arr2)
//-------------------------------------
    //join --加入|修改数组的连接符
    //将数组转换为字符串
    //并且，改变每个元素之间的链接符号
    //不修改原数组,返回新的字符串
    // console.log(arr3.toString());
    // console.log(arr3)
    // console.log(arr3.join('+'))
//---------------------------------
    //reverse ---反转数组
    //将数组反转
    //修改原数组
    // console.log(arr3.reverse())
    // console.log(arr3)
//---------------------------------    

    //pop | push
    //pop 弹出|尾部弹出元素   按压|尾部添加
    //返回(弹出|尾部删除的)的元素   返回(增加|添加的数组)的元素
    //修改原数组                     修改元素组
    // console.log(arr1);
    // console.log(arr1.pop());
    // console.log(arr1);
    // console.log(arr1);
    // console.log(arr1.push(4));
    // console.log(arr1);
    //--------------------------------- 

    //shift   |  unshift
    //pop 弹出|头部弹出元素   按压|头部添加
    //返回(弹出|头部删除的)的元素   返回(增加头部添加的数组)的元素
    //修改原数组                     修改原数组
    // console.log(arr1);
    // console.log(arr1.shift())
    // console.log(arr1);

    // console.log(arr1);
    // console.log(arr1.unshift(4))
    // console.log(arr1);
//--------------------------------- 
     //slice 选取 (starIndex:number,endIndex:number)
     //从数组的startIndex 位置开始选取
     //含头不含尾
     //不修改原数组
    //  console.log(arr3.slice(3,5+1))
    //  console.log(arr3);

//--------------------------------- 
     //splice 删除  (starIndex:number,endIndex:number，addElement:all)
     //从数组的startIndex 下标位置开始删除， 删除几个元素,并且将第三个参数的内容添加到删除的位置中
     //删除的count允许为0 此时，功能变为向指定位置添加元素
     //返回的是删除的元素，并且以数组的方式返回
     //修改原数组
     console.log(arr3.splice(3,2,100));
     console.log(arr3)
//--------------------------------- 
     //sort---排序

     var arr4=[2,1,54,3,95,0]
     console.log(arr4);
     //循环整个数组，
     //不停的拿上一个元素对比
     //和下一个元素对比
     //根据返回值
     //来确定是否互换位置
     console.log(arr4.sort(function(prev,next){
         //小于0 --prev 在后，next在前
         //等于0 --位置不变
         //大于0 --prev 在前，next在后

             console.log(prev-next)
             if(prev-next>0){
                 return 1
             }else if (prev-next <0){
                 return -1
             }else{
                 return 0
             }
             return prev-next
     }))

    </script>
</body>
</html>